Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complex (Hermitian) eigenvalues/eigenvectors #105

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

imantdaunhawer
Copy link

Hi,

on request of a colleague I've added the computation of eigenvectors/eigenvalues of complex and complex hermitian matrices as native and convenience methods. For this I received some funding from the University of Konstanz (Germany). Now, I would like to share this work with you, to uncover potential mistakes and to make a small contribution to your project.

For the computation of eigenvalues/eigenvectors of complex matrices (Fortran routines CGEEV and ZGEEV) the native methods already existed, but I added convenience methods for calling them from the Eigen class. For this I overloaded the existing methods Eigen.eigenvalue and Eigen.eigenvector in a way that seems consistent with the current design. Further I've implemented basic tests to TestEigen.java to check my implementation.

For the computation of eigenvalues/eigenvectors of complex Hermitian matrices (Fortran routines CHEEV and ZHEEV) I added the native methods (through an addition to the Makefile which automatically generates the C code). Further, I created new convenience methods Eigen.hermitianEigenvaluesand Eigen.hermitianEigenvectors for which a call assumes a Hermitian input matrix (otherwise, the results might be incorrect). Again, I've included tests that cover some basic cases.

I'll be glad to receive feedback on this implementation and I even have a few days left to work on further functionality related to complex and Hermitian matrices (please let me know if there are any preferences from your side).

eigenvalues/vectors of complex matrices for the existing routine CGEEV.

The implementation is ment to be consistent with the eigenvalue/vector
computation for general matrices, by overloading the existing methods.
…trix (Fortran routines CHEEV and ZHEEV). Implementation of native methods, convenience methods, and tests.
…trix (Fortran routines CHEEV and ZHEEV). Implementation of native methods, convenience methods, and tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant